// 用于仓库仓库

// 0. 引入 Vue
import Vue from "vue";
// 1. 引入 Vuex
import Vuex from "vuex";

Vue.use(Vuex);

// 3. new Vuex.Store() 创建 仓库实例对象
const store = new Vuex.Store({
  // 5大配置

  // state - 仓库中的数据
  state: {
    count: 10,
    msg: "msg",
  },

  getters: {
    // key1: value1
    //    key1 - getter 名字
    //    value1 - 计算该getter的一个函数,需要有返回值
    //             函数会携带有  state, getters, rootState 三个参数
    doubleCount(state) {
      // state - 就是当前store的state数据
      // getters - 就是当前getters数据
      // console.log("state", state);
      // console.log("getters", getters);
      return state.count * 2;
    },

    countPlus(state) {
      return state.count + 1;
    },

    doubleCountPlus(state, getters) {
      // return state.count * 2 + 1
      return getters.doubleCount + 1;
    },
  },
});

// 4. 导出 store 给其他文件使用
export default store;
